Methods of joint registration and de-registration for proximity services and internet of things services

ABSTRACT

Disclosed herein are a variety of devices, methods, and systems for combined proximity services and Internet of Things (IoT) services registration or de-registration. An exemplary method includes one or more of receiving a device initiated IoT service registration request, wherein proximity information relating to the device is contained within the received IoT service registration request; receiving a device initiated proximity service registration request, wherein IoT service information relating to the device is contained within the received IoT service registration request; sending, from an IoT server, a proximity service registration message; and sending, from a proximity manager, an IoT service registration request.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/022,575 filed Mar. 17, 2016 which is a National Stage Applicationfiled under 35 U.S.C. 371 of International Application No.PCT/US2014/056513, filed Sep. 19, 2014, which claims the benefit of, andincorporates herein by reference, U.S. Provisional Application61/880,437, “Methods of Joint Registration and De-Registration forProximity Services and Internet of Things Services”, filed Sep. 20,2013.

BACKGROUND

Proximity Communications are related to the awareness of a communicatingentities' proximity to desired services in an infrastructure-based orinfrastructure-less configuration. This can be a centralized system or afully distributed system without a central controller. Proximity-basedapplications and services represent a recent and enormoussocio-technological trend. Typical examples of proximity communicationsinclude smart transportation, social networking, advertisements, andpublic safety and emergency.

SUMMARY

Proximity communications can be related to Machine to Machine (M2M) andInternet of Things (IoT) systems such as smart environment and smarttransportation. By leveraging Proximity Communications, the performanceof those M2M/IoT applications can be improved. Also more new M2M/IoTapplications can be enabled by Proximity Communications. Severalstandards setting organizations are working on Proximity Communicationstandardization such as IEEE 802.15.8.

Disclosed herein are a variety of devices, methods, and systems forcombined proximity services and IoT services registration orde-registration. An exemplary method includes one or more of receiving adevice initiated IoT service registration request, wherein proximityinformation relating to the device is contained within the received IoTservice registration request; receiving a device initiated proximityservice registration request, wherein IoT service information relatingto the device is contained within the received IoT service registrationrequest; sending, from an IoT server, a proximity service registrationmessage; and sending, from a proximity manager, an IoT serviceregistration request.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to limitations that solve anyor all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram that illustrates an example based on known schemes.

FIG. 2 is a diagram that illustrates an IoT system which leveragesproximity services to provide smart transportation.

FIG. 3 is a diagram that illustrates an exemplary approach to joint IoTservice and proximity service registration.

FIG. 4 is a diagram that illustrates an exemplary approach usingIoT-server-assisted IoT and proximity service registration.

FIG. 5 is a diagram that illustrates an exemplary approach usingproximity-manager-assisted IoT and proximity service registration.

FIGS. 6A, 6B and 6C are diagrams that illustrate exemplary approachesfor IoT and proximity service de-registration.

FIG. 7 is a diagram that illustrates an exemplary approach forIoT-server-assisted IoT and proximity service de-registration.

FIG. 8 is a diagram that illustrates an exemplary approach forproximity-manager-assisted IoT and proximity service de-registration.

FIGS. 9A and 9B are diagrams that illustrate exemplary approaches forIoT-server-initiated de-registration.

FIGS. 10A and 10B are diagrams that illustrate exemplary approaches forproximity-manager-initiated de-registration.

FIGS. 11A and 11B are diagrams that illustrate an exemplary approach forjoint proximity and IoT registration/de-registration.

FIG. 12 is a diagram that illustrates an example where the proximitymanager is implemented as a new Common Service Function (CSF).

FIG. 13 is a diagram that illustrates a local area network.

FIG. 14 is a diagram that illustrates another example of a local areanetwork.

FIG. 15 is a diagram that illustrates an exemplary interface that can beused with the disclosed joint registration/deregistration of proximityservices and IoT services systems and methods.

FIG. 16A is a system diagram of an example machine-to-machine (M2M) orInternet of Things (IoT) communication system in which one or moredisclosed embodiments may be implemented;

FIG. 16B is a system diagram of an example architecture that may be usedwithin the M2M/IoT communications system illustrated in FIG. 16A;

FIG. 16C is a system diagram of an example M2M/IoT terminal or gatewaydevice that may be used within the communications system illustrated inFIG. 16A; and

FIG. 16D is a block diagram of an example computing system in whichaspects of the communication system of FIG. 16A may be embodied.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

IoT services can provide service layer functionalities for IoT entities(e.g. IoT devices, IoT gateways, IoT servers, IoT applications) tointeract with each other. IoT service layer functionalities includeservice registration, service discovery, data storage, data exchange,device management, etc. An IoT entity can provide IoT services for otherIoT entities, or it can leverage IoT services provided by other IoTentities. In order to leverage IoT services on other IoT entities, theIoT entity basically needs to register itself with the other entity. Forexample, an IoT device needs to first conduct IoT service registrationwith an IoT server (or an IoT gateway, another IoT device) in order toexploit IoT services provided by the IoT server (or the IoT gateway,another IoT device).

In this disclosure, the scenario where IoT devices are enabled with bothIoT services and proximity services is considered. IoT services areprovided by IoT servers, while proximity services are provided byproximity managers. The proximity manager and the IoT server may havedifferent owners; or may be implemented as different entities in the IoTnetwork.

With respect to IoT services, an IoT device needs to make IoT serviceregistration with an IoT server so that: 1) the device can leverage theIoT services provided by the IoT server; and 2) the IoT server canmonitor, manage, and control the IoT device from IoT serviceperspective.

In the context of proximity services, a proximity manager is used toprovide proximity services. In order to leverage such proximityservices, the IoT device also needs to perform proximity serviceregistration with the proximity manager.

FIG. 1 illustrates an example based on existing schemes, where there aretwo devices, one proximity manager 102, and three IoT servers 104, 106and 108. As mentioned earlier, the proximity manager 102 providesproximity services such as link management, while IoT servers 104, 106and 108 provide IoT services such as service discovery, data management,and device management. In this example, the proximity manager 102 canreside in core network or access network but it is definitely able tomanage, control and monitor the direct communication link between“device 1” 110 and “device 2” 112. The three IoT servers 104, 106 and108 are deployed in the core network or in the cloud. In order toleverage proximity services and enable direct communications, “device 1”110 and “device 2” 112 first need to make registration with theproximity manager 102; in other words, the proximity manager 102, onlyafter receiving proximity registration from both device, will be able toinstruct both devices when and how to enable direct communications andwhat's the allocated link resource for direct communications. In themeantime, both devices as IoT devices need to register themselves withIoT server (i.e. “IoT server 3” 108 in this example) in order to exploitIoT services provided by the “IoT server 3” 108. Likewise, there areproximity de-registration and IoT de-registration to cancel previouslyestablished proximity registration and IoT registration.

As shown in FIG. 1, both types of registration are currently treatedindependently. During IoT registration, “IoT server 3” 108 does not knowany proximity-related information about “device 1” 110, “device 2” 112,and/or the proximity manager 102. Likewise, during proximityregistration, the proximity manager 102 does not know any informationabout IoT servers 104, 106 and 108 and IoT services which “device 1” 110and “device 2” 112 are looking for or in use.

There is no any interaction between the proximity manager 102 and IoTservers 104, 106 and 108 (i.e. no interaction between proximity servicesand IoT services) However, such independent proximity registration andIoT registration loses many opportunities to enhance the systemperformance. For example, the proximity manager 102 could allocatedirect link resources in a way to better cater for IoT services if itknows about IoT services and/or can interact with IoT servers 104, 106and 108. In another example, IoT servers 104, 106 and 108 could providebetter IoT services if they know the proximity information about theirdevices and can communicate with the proximity manager 102.

In summary, IoT devices need to register themselves with both the IoTserver 104, 106 and 108 and the proximity manager 102 for IoT servicesand proximity services. Both registrations (i.e. proximity serviceregistration and IoT service registration) are currently treatedseparately and independently in literature and existing standards, whichmay introduce extra overhead and fail to exploit dependencies andinteractions between proximity services and IoT services. In addition,the IoT devices 110 and 112 may perform de-registration with the IoTserver 108 and the proximity manager 102. Thus, new procedures andmethods which support joint IoT service and proximity serviceregistration/de-registration in a more efficient manner forproximity-enabled IoT systems would be advantageous.

This disclosure proposes methods for joint proximity services and IoTservices registration and de-registration. The proposed joint schemeshelp to reduce signaling overhead and make theregistration/de-registration more efficient. A variety of concepts aredisclosed here, including:

Three joint IoT and proximity registration schemes are described:

-   -   Device-initiated service registration where proximity        information (or IoT service information) can be piggybacked        during IoT registration (or proximity registration).    -   IoT-server-assisted service registration where IoT server can        help to perform proximity registration for its devices; and.    -   Proximity-manager-assisted service registration where proximity        manager can help to perform IoT registration for its devices.

The following joint IoT and proximity de-registration schemes aredescribed:

-   -   Device-initiated service de-registration where proximity        information (or IoT service information) can be piggybacked        during IoT de-registration (or proximity de-registration). Also        one device can help to perform de-registration on behalf of        other devices in the same proximity.    -   IoT-server-assisted service de-registration where IoT server can        help to perform proximity de-registration for its devices.    -   Proximity-manager-assisted service de-registration where        proximity manager can help to perform IoT de-registration for        its devices.    -   IoT-server-initiated service de-registration where IoT server        actively initiates de-registration for a group of devices.    -   Proximity-manager-initiated service de-registration where        proximity manager actively initiates de-registration for a group        of devices.

It should be understood that one or more, up to all, of the aboveschemes can be used in combination.

Nodes on a network can include servers, gateways, devices, or othercomputer systems. A first node (such as an proximity manager or IoTserver) can register and deregister a device for a first type of service(such as proximity services or M2M/IoT services) and can forward theregistration or deregistration to second node (such as an IoT server orproximity manager) for a second type of services (such as proximityservices or M2M/IoT services). This avoids the requirement ofregistering or deregistering a device separately at the first and secondnode.

Exemplary Use Cases. FIG. 2 illustrates an IoT system 200 leveragingproximity services to provide smart transportation. In this example,there are a set of Machine-Type Communications (MTC)-based IoT Devices(i.e. A, B, and C). Each device (e.g. a 3GPP terminal with or withoutWiFi support manufactured by Huawei or Ericsson) is installed in avehicle (i.e. A, B, and C). There is also an IoT server 202 to provideIoT services such as data forwarding, data storage, and data sharing.The IoT server is hosted by IoT service providers (e.g. Google) andusually is deployed in the cloud. There is also a proximity manager 204to provide proximity services such as proximity enablement and directP2P communications. The proximity manager 204 could be hosted by networkproviders (e.g. AT&T) or vehicle manufacture (e.g. General Motors). Forexample, General Motors has OnStar system today, which can be extendedby incorporating functions of proximity manager. Each device can haveintegrated software (e.g. IoT service software and proximity software)to support and use both IoT services and proximity services.

For example, vehicle A and C can leverage IoT services to exchange datavia the IoT server 202.

However, vehicles A and B, due to being within the same proximity, areable to leverage proximity services provided by the proximity manager204 to enable more intelligent IoT services (either bypass IoT server orroute through it).

In order to leverage proximity services and IoT services, each deviceneeds to perform registration with both the proximity manager 204 andthe IoT server 202.

This is done independently via separate procedures according to existingstandards such as ETSI M2M (i.e., ETSI TC M2M TS 102 690 FunctionalArchitecture) which may introduce extra overhead and fail to exploitindependencies and interactions between proximity services and IoTservices.

In order to tackle this problem, a joint IoT service and proximityservice registration/de-registration is used in which both registrationsare treated together provides a more efficient approach.

Joint IoT Service and Proximity Service Registration

Approach 1: Device-Initiated Registration

The proposed first approach is shown in FIG. 3. In this approach, it isassumed that devices know the address of both the proximity manager 306and the IoT Server 308 via different approaches (e.g. provisioning,discovery, etc.)

In step 1 of FIG. 3, “device 1” 304 registers with the proximity manager306 by sending a “Proximity Service Registration” request message.During this step, “device 1” 304 informs the proximity manager 306 ofthe address of its IoT Server 308 by embedding it in proximityregistration message. Device 1 can also indicate its IoT registrationstatus in this step if Step 1 happens after Step 2.

For example, if device 1 is a 3GPP device, it can optionally store theaddresses of both the proximity manager and the IoT server 308 in HomeSubscriber Set (HSS).

During this step, “device 1” 304 may indicate multiple IoT servers tothe proximity manager. The proximity manager can help to select anappropriate IoT server 308 for “device 1” 304 and may notify “device 1”304 of the selected IoT server 308.

The selection could be based on context information of “device 1” 304(e.g. its location) and context information of IoT server (e.g. itslocation, charging rate, traffic load, etc.). For example, to select anIoT server which is closer to “device 1” 304 (i.e. with less number ofIP hops), to select an IoT server with lower charging rate, to select anIoT server with lower traffic load, or to select an IoT server whichmanages other devices within the proximity of device 1.

In step 2 of FIG. 3, “device 1” 304 registers with the IoT server 308 bysending an “IoT Service Registration” request message. During this step,“device 1” 304 informs the IoT server 308 of the address of itsproximity manager 306 by embedding it in “IoT Service Registration”message. “Device 1” 304 can also indicate its proximity registrationstatus in this step. Optionally, this step can happen prior to Step 1.In this case, the IoT server 308 can help select an appropriateproximity manager for “Device 1” 304 if it indicates multiple or none ofproximity manager in the “IoT Service Registration” request message.

In step 3 of FIG. 3, “device 2” 302 registers with the proximity managerby sending a “Proximity Service Registration” message. During this step,“device 2” 302 informs the proximity manager 306 of the address of itsIoT Server 308 by embedding it in proximity registration message. Forexample, if Device 2 is a 3GPP device, it can optionally store theaddresses of both the proximity manager and the IoT server in HSS.

In step 4 of FIG. 3, “device 2” 302 registers with the IoT server 308 bysending an “IoT Service Registration” message. During this step, “device2” 302 informs the IoT server 308 of the address of its proximitymanager by embedding it in an “IoT Service Registration” message. Itshould be understood that Step 2 of FIG. 3 can occur before Step 1 ofFIG. 3. Likewise, step 4 of FIG. 3 can be done before step 3 of FIG. 3.

It is understood that the entities performing the steps illustrated inFIG. 3 are logical entities that may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory of,and executing on a processor of, a device, server, or other computersystem such as one of those illustrated in FIG. 16C or 16D. That is, themethod(s) illustrated in FIG. 3 may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory ofa computing device, such as for example the device or computer systemillustrated in FIG. 16C or 16D, which computer executable instructions,when executed by a processor of the computing device, perform the stepsillustrated in FIG. 3.

Approach 2: IoT-Server-Assisted Registration

FIG. 4 illustrates IoT-server-assisted IoT and proximity serviceregistration. In this approach, it is assumed that devices may only knowthe address of the IoT server 308. The following exemplary steps areproposed.

In step 1 of FIG. 4, “Device 1” 304 sends an “IoT Service RegistrationRequest” message to the IoT Server 308. This message may contain thefollowing fields or parameters:

-   -   Device 1's capability for supporting proximity services,    -   Device 1's requirements on proximity services,    -   Device 1's location information (e.g. geo-location),    -   Device 1's attached network.

In step 2 of FIG. 4, “device 2” 302 sends an “IoT Service RegistrationRequest” message to the IoT Server 308. This message may contain thefollowing fields or parameters:

-   -   Device 2's capability for supporting proximity services,    -   Device 2's requirements on proximity services,    -   Device 2's location information (e.g. geo-location),    -   Device 2's attached network

In step 3 of FIG. 4, the IoT sever 308 performs “Discover ProximityManager”.

The IoT server 308 discovers and identifies an appropriate proximitymanager based on device 1& device 2's information reported in step 1 andstep 2 of FIG. 4 such as their proximity capability and currentlocation.

For example, if device 1 and 2 moves to a new location or attaches to adifferent network, a new proximity manager will be selected by the IoTserver 308 based on device 1 and 2's current location and attachednetwork. The assumption here is that IoT server 308 may maintain a listof potential proximity managers or leverage IoT discovery service tofind appropriate proximity manager. But how to leverage IoT discoveryservice is out of the scope of this paper.

Alternatively, the IoT server 308 may have a pre-configured proximitymanager for all devices it services.

In step 4 of FIG. 4, the IoT server sends a “Proximity ServiceRegistration Request” message to the selected proximity manager.Basically, the IoT server 308 can use this single step to performproximity service registration for multiple devices, which is moreefficient than the device-initiated registration in FIG. 3. This messagemay contain the following fields or parameters:

-   -   Device 1& device 2's capability for supporting proximity        services,    -   Device 1& device 2's requirements on proximity services,    -   Device 1& device 2's location information (e.g. geo-location)    -   Device 1 & device 2's identifier (e.g. URL, MS-ISDN, IP address,        etc.)

In step 5 of FIG. 4, the proximity manager 306 sends a “ProximityService Registration Response” to the IoT server 308.

In step 6 of FIG. 4, the IoT server 308 sends an “IoT ServiceRegistration Response” to “device 1” 304. This message can tell ifdevice 1's IoT service registration request is accepted or rejected. Themessage may indicate if the proximity request is accepted or not basedon the response in Step 5 of FIG. 4 or local decision made by the IoTserver 308. This message may include the information about the selectedproximity manager such as its address (e.g. URL).

In step 7 of FIG. 4, the IoT server 308 sends an “IoT ServiceRegistration Response” to “device 2” 302. This message can tell ifdevice 2's IoT service registration request is accepted or rejected. Themessage may indicate if the proximity request is accepted or not basedon the response in step 5 or local decision made by the IoT server 308.This message may include the information about the selected proximitymanager 306 such as its address (e.g. URL).

The IoT server 308 may reject IoT service registration request in step 1of FIG. 4 (or step 2 of FIG. 4) directly. In this case, steps 3-5 ofFIG. 4 may be skipped.

The IoT server 308 may allow IoT service registration, but directlyreject proximity request piggybacked in step 2 of FIG. 4. In this case,steps 3-5 of FIG. 4 will be skipped. If none of proximity managers 306is found in step 3 of FIG. 4, steps 4-5 of FIG. 4 will be skipped. Ifthe IoT server receives “rejection” in step 5 of FIG. 4, it may repeatsteps 3-5 of FIG. 4 to find another proximity manager and makeregistration with it.

After Step 3 of FIG. 4, the IoT server may optionally skip steps 4-5 ofFIG. 4 but return the address of the selected proximity manager to“device 1” 304 and “device 2” 302 in step 6 and 7 of FIG. 4,respectively. Then “device 1” 304 and “device 2” 302 can make proximityservice registration directly with the selected proximity manager 306.

Optionally, the IoT server 308 may perform steps 4-5 of FIG. 4sequentially for each device (i.e. “device 1” 304 and “device 2” 302 inFIG. 4).

Optionally, the IoT server 308 can first send simple IoT serviceregistration response without proximity manager info for Step 1 of FIG.4 (or Step 2 of FIG. 4) to Device 1 (or Device 2) before Step 3 of FIG.4 without waiting for Step 4 and Step 5 of FIG. 4.

In this step, the IoT server 308 could tell device 1″ 304 and “device 2”302 that they do not need to send proximity service registration requestto the proximity manager 306 since it will forward the aggregatedrequest to the proximity manger.

It is understood that the entities performing the steps illustrated inFIG. 4 are logical entities that may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory of,and executing on a processor of, a device, server, or other computersystem such as one of those illustrated in FIG. 16C or 16D. That is, themethod(s) illustrated in FIG. 4 may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory ofa computing device, such as for example the device or computer systemillustrated in FIG. 16C or 16D, which computer executable instructions,when executed by a processor of the computing device, perform the stepsillustrated in FIG. 4.

Approach 3: Proximity-Manager-Assisted Registration

FIG. 5 illustrates proximity-manager-assisted IoT and proximity serviceregistration. In this approach, it is assumed that devices may only knowthe address of the proximity manager 306. The following exemplary stepsare proposed.

In step 1 of FIG. 5, “device 1” 304 sends a “Proximity ServiceRegistration Request” message to the proximity manager. This message maycontain the following fields or parameters:

-   -   Device 1's capability for supporting IoT services,    -   Device 1's requirements on IoT services,    -   Device 1's location information (e.g. geo-location)

In step 2 of FIG. 5, “device 2” 302 sends a “Proximity ServiceRegistration Request” message to the proximity manager. This message maycontain the following fields or parameters:

-   -   Device 2's capability for supporting IoT services,    -   Device 2's requirements on IoT services,    -   Device 2's location information (e.g. geo-location)

In step 3 of FIG. 5, the proximity manager 306 performs a “Discover IoTServer” step. The proximity manager 306 discovers and identifies anappropriate IoT server 308 based on device 1& device 2's informationreported in step 1 and 2 such as their IoT capability and currentlocation. Alternatively, the proximity manager 306 may have apre-configured IoT server for all devices it services.

In step 4 of FIG. 5, the proximity manager 306 sends an “IoT ServiceRegistration Request” message to the selected IoT server 308. Basically,the proximity manager 306 can use this single step to perform IoTservice registration for multiple devices, which is more efficient thanthe device-initiated registration in FIG. 3. This message may containthe following fields or parameters:

Device 1& device 2's capability for supporting IoT services, Device 1 &device 2's requirements on IoT services, Device 1& device 2's locationinformation (e.g. geo-location) Device 1 & device 2's identifier (e.g.URL, MS-ISDN, IP address, etc.)

In step 5 of FIG. 5, the IoT server 308 sends an “IoT ServiceRegistration Response” to the proximity manager. This message will tellthe proximity manager if the request in step 4 of FIG. 5 is accepted orrejected. If step 4 of FIG. 5 is for multiple devices (e.g. device 1 anddevice 2), the IoT server 308 may indicate which device is accepted andwhich device is rejected. The IoT server 308 may assign a group ID forthe devices as requested in step 4 of FIG. 5. As a result, this messagemay contain this group ID.

In step 6 of FIG. 5, the proximity manager 306 sends a “ProximityService Registration Response” to “device 1” 304. This message will tellif device 1's proximity service registration request is accepted orrejected. The message may indicate if the IoT registration request isaccepted or not based on the response in Step 5 or local decision madeby the IoT server. This message may include the information about theselected IoT server such as its address (e.g. URL).

In step 7 of FIG. 5, the proximity manager 306 sends a “ProximityService Registration Response” to “device 2” 302. This message will tellif device 2's proximity service registration request is accepted orrejected. The message may indicate if the IoT registration request isaccepted or not based on the response in Step 5 of FIG. 5 or localdecision made by the IoT server 308. This message may include theinformation about the selected IoT server 308 such as its address (e.g.URL).

The proximity manager 306 may reject proximity service registrationrequest in step 1 of FIG. 5 (or step 2 of FIG. 5) directly. In thiscase, steps 3-5 of FIG. 5 may be skipped. The proximity manager 306 mayallow proximity service registration, but directly reject IoTregistration request piggybacked in step 2 of FIG. 5. In this case,steps 3-5 of FIG. 5 will be skipped. If none of IoT servers 308 is foundin step 3 of FIG. 5, steps 4-5 of FIG. 5 will be skipped.

If the proximity manager 306 receives “rejection” in step 5 of FIG. 5,it may repeat steps 3-5 of FIG. 5 to find another IoT server 308 andmake registration with it.

After Step 3 of FIG. 5, the proximity manager 306 may optionally skipsteps 4-5 of FIG. 5 but return the address of the selected IoT server308 to “device 1” 304 and “device 2” 302 in steps 6 and 7 of FIG. 5,respectively. Then “device 1” 304 and “device 2” 302 can make IoTservice registration directly with the selected IoT server 308.

Optionally, the proximity manager 306 may perform steps 4-5 of FIG. 5sequentially for each device (i.e. “device 1” 304 and “device 2” 302 inFIG. 5).

In Step 3 of FIG. 5, the Proximity Manager 306 may find that “device 1”304 and “device 2” 302 correspond to two different IoT servers (e.g. Aand B). Then Step 4 and 5 of FIG. 5 will be repeated for both IoTservers A and B.

Optionally, the proximity manager 306 can first send a simple proximityregistration response without IoT server info for Step 1 of FIG. 5 (orStep 2 of FIG. 5) to “device 1” 304 (or “device 2” 302) before Step 3 ofFIG. 5 without waiting for Step 4 and Step 5 of FIG. 5.

It is understood that the entities performing the steps illustrated inFIG. 5 are logical entities that may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory of,and executing on a processor of, a device, server, or other computersystem such as one of those illustrated in FIG. 16C or 16D. That is, themethod(s) illustrated in FIG. 5 may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory ofa computing device, such as for example the device or computer systemillustrated in FIG. 16C or 16D, which computer executable instructions,when executed by a processor of the computing device, perform the stepsillustrated in FIG. 5.

Joint IoT Service and Proximity Service De-Registration

Approach 1: Device-Initiated De-Registration

A proposed first approach for IoT and proximity service de-registrationprocedures is shown in FIGS. 6A-C. In this approach, it is assumed thatdevices know the address of both the proximity manager 306 and the IoTServer 308 due to previous service registration. In FIG. 6A, each deviceindependently performs service de-registration; in FIG. 6B, one device'sservice de-registration can trigger service de-registration for otherdevices; in FIG. 6C, one device can assist other devices within the sameproximity to conduct IoT service de-registration and also can triggerproximity service de-registration directly to other devices.

FIG. 6A includes the following exemplary steps.

In step 1 of FIG. 6A, “device 1” 304 sends a “Proximity ServiceDe-Registration” message. During this step, “device 1” 304 informs theproximity manager 306 of the address of its IoT Server 308 by embeddingit in this message.

Then the proximity manager 306 may inform the IoT server 308 that thedirect communications between “device 1” 304 and other involved devicesare cancelled in a separate step which is not shown in FIG. 6, so thatthe IoT server 308 can automatically adjust the communications between“device 1” 304 and other devices.

In step 2 of FIG. 6A, “device 1” 304 sends an “IoT ServiceDe-Registration” message. During this step, device 1 informs the IoTserver 308 of the address of its proximity manager 306 by embedding itin this message. The IoT server 308 may inform the proximity manager 306that the IoT services on “device 1” 304 are cancelled in a separate stepwhich is not shown in FIG. 6.

In step 3 of FIG. 6A, “device 2” 302 sends a “Proximity ServiceDe-Registration” message. During this step, “device 1” 304 informs theproximity manager 306 of the address of its IoT server 308 by embeddingit in this message. Then the proximity manager 306 may inform the IoTserver 308 that the direct communications between “device 2” 302 andother involved devices are cancelled in a separate step which is notshown in FIG. 6, so that the IoT server 308 can automatically adjust thecommunications between “device 2” 302 and other devices.

In step 4 of FIG. 6A, “device 2” 302 sends an “IoT ServiceDe-Registration” message. During this step, “device 1” 304 informs theIoT server 308 of the address of its proximity manager 306 by embeddingit in this message. The IoT server 308 may inform the proximity manager306 that the IoT services on “device 2” 302 are cancelled in a separatestep which is not shown in FIG. 6. Step 1 of FIG. 6A may occur afterStep 2 of FIG. 6A. Step 3 of FIG. 6A may occur after Step 4 of FIG. 6Aas well.

FIG. 6B shows the following exemplary steps.

In step 0 of FIG. 6B, “device 2” 302 and “device 1” 304 perform mutualauthentication and authorization. Then trust relationship can beestablished between “device 1” 304 and “device 2” 302 so that “device 1”304 can perform service de-registration on behalf of “device 2” 302.This step is optional and can be skipped if “device 1” 304 and device 2are currently authenticated each other already.

In step 1 of FIG. 6B, “device 1” 304 sends a “Proximity ServiceDe-Registration Request” message to the proximity manager 306. Thismessage may contain the following fields or parameters:

-   -   The address of the IoT server 308    -   The group ID which “device 1” 304 and other devices belong to    -   De-registration reason

In step 2 of FIG. 6B, Based on the “group ID” contained in step 1, theproximity manager 306 locates other devices within the same group andsends a “Proximity Service De-Registration Request” to each of them.This message may contain:

-   -   The group ID which is the same as that in step 1.    -   Device ID (i.e. “device 1” 304 in this case)    -   De-registration reason which is the same as that in step 1

In step 3 of FIG. 6B, “device 2” 302 sends a response back to theproximity manager 306

In step 4 of FIG. 6B, Step 2 and 3 of FIG. 6B may be repeated for allother devices within the same group. Based on responses from otherdevices, the proximity manager 306 sends the final response to therequesting device (i.e. “device 1” 304). The message may contain list ofdevices which explicitly send response.

Step 4 of FIG. 6B can happen between Step 1 and Step 2 of FIG. 6B.

In step 5 of FIG. 6B, “device 1” 304 sends an “IoT ServiceDe-Registration Request” message to the IoT server 308. This message maycontain the following fields or parameters:

-   -   The address of the proximity manager 306    -   The group ID which “device 1” 304 and other devices belong to    -   De-registration reason

In step 6 of FIG. 6B, Based on the “group ID” contained in step 1 ofFIG. 6B, the IoT server 308 locates other devices within the same groupand sends an “IoT Service De-Registration Request” to each of them. Thismessage may contain:

-   -   The group ID which is the same as that in step 1 of FIG. 6B.    -   De-registration reason which is the same as that in step 1 of        FIG. 6B    -   Requesting device ID (i.e. “device 1” 304 in this case)

In step 7 of FIG. 6B, “device 2” 302 sends a response back to the IoTserver 308.

In step 8 of FIG. 6B, Steps 2 and 3 of FIG. 6B may be repeated for allother devices within the same group. Based on responses from otherdevices, the IoT server 308 sends the final response to the requestingdevice (i.e. “device 1” 304). The message may contain the list ofdevices which explicitly send response.

Devices can perform de-registration with the IoT server 308 first. Inthis case, Steps 5-8 of FIG. 6B will occur before Steps 1-4 of FIG. 6B.

FIG. 6C shows the following exemplary steps.

In step 0 of FIG. 6C, “device 2” 302 and “device 1” 304 perform mutualauthentication and authorization. Then trust relationship can beestablished between “device 1” 304 and “device 2” 302 so that “device 1”304 can perform service de-registration on behalf of “device 2” 302.

In step 1 of FIG. 6C, “device 2” 302 sends an “IoT ServiceDe-Registration Request” message to “device 1” 304. During this step,“device 2” 302 informs the “device 1” 304 of its device ID and group IDby embedding them in this message. Then, “device 1” 304 can help toperform IoT service de-registration on behalf of all devices in thegroup as denoted by Group ID (e.g. “device 2” 302, “device 1” 304) inthe following steps.

In step 2 of FIG. 6C, “device 1” 304 sends an “IoT ServiceDe-Registration Response” to “device 2” 302. It should be understoodthat Step 2 of FIG. 6C can optionally occur after Step 4 of FIG. 6C.

In step 3 of FIG. 6C, “device 1” 304 sends an “IoT ServiceDe-Registration Request” to IoT server 308. This message may contain thefollowing information:

-   -   The address of the corresponding Proximity manager 306    -   The group ID of “device 1” 304 and “device 2” 302

In step 4 of FIG. 6C, IoT server 308 sends back “IoT ServiceDe-Registration Response” back to “device 1” 304.

In step 5 of FIG. 6C, “device 2” 302 sends a “Proximity ServiceDe-Registration Request” message to “device 1” 304. During this step,“device 2” 302 informs the “device 1” 304 of its device ID and group IDby embedding them in this message. Then, “device 1” 304 can help toperform proximity service de-registration on behalf of all devices inthe group as denoted by Group ID (e.g. “device 2” 302, “device 1” 304)in the following steps.

In step 6 of FIG. 6C, “device 1” 304 sends a “Proximity ServiceDe-Registration Response” to “device 2” 302. Step 6 of FIG. 6C canoptionally occur after Step 8 of FIG. 6C.

In step 7 of FIG. 6C, “device 1” 304 sends a “Proximity ServiceDe-Registration Request” to Proximity manager 306. This message maycontain the following information:

-   -   The address of the corresponding IoT server 308    -   The group ID of “device 1” 304 and “device 2” 302

In step 8 of FIG. 6C, Proximity manager 306 sends a “Proximity ServiceDe-Registration Response” back to “device 1” 304.

Devices can perform de-registration with the proximity manager 306first. In that case, Steps 5-8 of FIG. 6C will occur before Steps 1-4 ofFIG. 6C.

It is understood that the entities performing the steps illustrated inFIGS. 6A-C are logical entities that may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory of,and executing on a processor of, a device, server, or other computersystem such as one of those illustrated in FIG. 16C or 16D. That is, themethod(s) illustrated in FIG. 6A-C may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory ofa computing device, such as for example the device or computer systemillustrated in FIG. 16C or 16D, which computer executable instructions,when executed by a processor of the computing device, perform the stepsillustrated in FIGS. 6A-C.

Approach 2: IoT-Server-Assisted De-Registration

FIG. 7 illustrates IoT-server-assisted IoT and proximity servicede-registration. In this approach, it is assumed that devices may onlyknow the address of the IoT server 308. The following exemplary stepsare proposed.

In step 1 of FIG. 7, “device 1” 304 sends an “IoT ServiceDe-Registration Request” message to the IoT server 308. This message maycontain the following fields or parameters:

-   -   Device 1's location information (e.g. geo-location)    -   The address of the proximity manager 306    -   De-registration reason

In step 2 of FIG. 7, the IoT server 308 sends a response back to “device1” 304

In step 3 of FIG. 7, “device 2” 302 sends an “IoT ServiceDe-Registration Request” message to the IoT server 308. This message maycontain the following fields or parameters:

-   -   Device 2's location information (e.g. geo-location)    -   The address of the proximity manager 306    -   De-registration reason

In step 4 of FIG. 7, the IoT server 308 sends a response back to “device2” 302.

In step 5 of FIG. 7, The IoT should know the address of thecorresponding proximity manager 306 via the previous procedures. If not,it can look up its local database to find the corresponding proximitymanager 306 for “device 1” 304 and “device 2” 302.

In step 6 of FIG. 7, The IoT server 308 sends a “Proximity ServiceDe-Registration Request” message to the corresponding proximity manager.Basically, the IoT server 308 can use this single step to performproximity service de-registration for multiple devices, which is moreefficient than the device-initiated de-registration in FIG. 6. Thismessage may contain the following fields or parameters:

-   -   Group identifier which “device 1” 304 and “device 2” 302 belong        to.    -   Device 1 and device 2's identifier (e.g. URL, MS-ISDN, IP        address, etc.)    -   De-registration reason

In step 7 of FIG. 7, the proximity manager 306 sends a “ProximityService De-Registration Response” to the IoT server 308. Using the sameidea in FIG. 6 (b), “device 1” 304, during Step 1 and 2, can request theIoT server 308 to contact “device 2” 302 and the proximity manager 306to trigger de-registration. In this case, Step 3 will be triggered andinitiated by the IoT server 308.

It is understood that the entities performing the steps illustrated inFIG. 7 are logical entities that may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory of,and executing on a processor of, a device, server, or other computersystem such as one of those illustrated in FIG. 16C or 16D. That is, themethod(s) illustrated in FIG. 7 may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory ofa computing device, such as for example the device or computer systemillustrated in FIG. 16C or 16D, which computer executable instructions,when executed by a processor of the computing device, perform the stepsillustrated in FIG. 7.

Approach 3: Proximity-Manager-Assisted De-Registration

FIG. 8 illustrates proximity-manager-assisted IoT and proximity servicede-registration. In this approach, it is assumed that devices may onlyknow the address of the proximity manager 306. The following exemplarysteps are proposed.

In step 1 of FIG. 8, “device 1” 304 sends a “Proximity ServiceDe-Registration Request” message to the proximity manager 306. Thismessage may contain the following fields or parameters:

-   -   “device 1” 304's location information (e.g. geo-location)    -   The address of the IoT server 308    -   De-registration reason

In step 2 of FIG. 8, the proximity manager 306 sends a response back to“device 1” 304.

In step 3 of FIG. 8, “device 2” 302 sends a “Proximity ServiceDe-Registration Request” message to the proximity manager 306. Thismessage may contain the following fields or parameters:

-   -   Device 2's location information (e.g. geo-location)    -   The address of the IoT server 308    -   De-registration reason

In step 4 of FIG. 8, the proximity manager 306 sends a response back to“device 2” 302.

In step 5 of FIG. 8, the proximity manager 306 should know the addressof the corresponding IoT server 308 via the previous procedures. If not,it may look up its local database to find the corresponding IoT server308 for “device 1” 304 and “device 2” 302.

In step 6 of FIG. 8, the proximity manager 306 sends an “IoT ServiceDe-Registration Request” message to the corresponding IoT server 308.Basically, the proximity manager 306 can use this single step to performIoT service de-registration for multiple devices, which is moreefficient than the device-initiated de-registration in FIG. 6. Thismessage may contain the following fields or parameters:

-   -   Group identifier which “device 1” 304 and “device 2” 302 belong        to.    -   Device 1 and device 2's identifier (e.g. URL, MS-ISDN, IP        address, etc.)    -   De-registration reason

In step 7 of FIG. 8, the IoT server 308 sends an “IoT ServiceDe-Registration Response” to the proximity manager 306. Using the sameidea in FIG. 6 (b), “device 1” 304, during Step 1 and 2, can request theproximity manager 306 to contact “device 2” 302 and the IoT server 308to trigger de-registration. In this case, Step 3 will be triggered andinitiated by the proximity manager 306.

It is understood that the entities performing the steps illustrated inFIG. 8 are logical entities that may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory of,and executing on a processor of, a device, server, or other computersystem such as one of those illustrated in FIG. 16C or 16D. That is, themethod(s) illustrated in FIG. 8 may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory ofa computing device, such as for example the device or computer systemillustrated in FIG. 16C or 16D, which computer executable instructions,when executed by a processor of the computing device, perform the stepsillustrated in FIG. 8.

Approach 4: IoT-Server-Initiated De-Registration

The IoT server 308 can initiate proximity service de-registration basedon certain policies. For example, if its traffic load becomes light, theIoT server 308 can de-activate proximity services. In the secondexample, the IoT server 308 may like to onload IoT traffic for bettersecurity control. In the third example, the IoT server 308 may find thatthe current proximity manager 306 becomes unreliable or unsecure andcancel proximity services.

FIGS. 9A-B illustrates the procedures for IoT-server-initiatedde-registration. In FIG. 9A, the IoT server 308 initiates and plays as aproxy to perform de-registration for multiple devices. For example, FIG.9A shows the following exemplary steps, which works as follows:

In step 1 of FIG. 9A, the IoT server 308 decides to perform proximityservice de-registration for some devices by sending a “Proximity ServiceDe-Registration Request” message to the corresponding proximity manager306. The IoT server 308 may first look up its local database to find thecorresponding proximity manager 306. This message may contain thefollowing information:

-   -   Group identifier which devices belong to    -   Devices' identifiers    -   De-registration reason

In step 2 of FIG. 9A, the proximity manager 306 sends a response back tothe IoT server 308.

In step 3 of FIG. 9A, the IoT server 308 sends an “IoT ServiceDe-Registration Request” to “device 1” 304. The IoT server 308 may usethis message to de-register proximity service only, or to de-registerboth proximity service and IoT service. This message may contain thefollowing information:

-   -   The address of the proximity manager 306    -   Group identifier which the device belongs to    -   De-registration reason

In step 4 of FIG. 9A, “device 1” 304 sends a response back to the IoTserver 308

In step-5 of FIG. 9A, the IoT server 308 sends an “IoT ServiceDe-Registration Request” to “device 2” 302. The IoT server 308 may usethis message to de-register proximity service only, or to de-registerboth proximity service and IoT service. This message may contain thefollowing information:

-   -   The address of the proximity manager 306    -   Group identifier which the device belongs to    -   De-registration reason

In step 6 of FIG. 9A, “device 2” 302 sends a response back to the IoTserver 308

In FIG. 9B, the IoT server 308 initiates de-registration but it goesthrough the proximity manager 306. For example, FIG. 9B shows thefollowing exemplary steps:

In step 1 of FIG. 9B, the IoT server 308 decides to perform IoT servicede-registration to some devices, which previously requested via theproximity manager 306 by sending an “IoT Service De-RegistrationRequest” message to the corresponding proximity manager 306. The IoTserver 308 may first look up its local database to find thecorresponding proximity manager 306. This message may contain thefollowing information:

-   -   Group identifier which devices belong to    -   Devices' identifiers    -   De-registration reason

In step 2 of FIG. 9B, the proximity manager 306 sends a response back tothe IoT server 308

In step 3 of FIG. 9B, the proximity manager 306 sends a “ProximityService De-Registration Request” to “device 1” 304. The proximitymanager 306 may use this message to de-register IoT service only, or tode-register both IoT service and proximity service. This message maycontain the following information:

-   -   The address of the IoT server 308    -   Group identifier which the device belongs to    -   De-registration reason

In step 4 of FIG. 9B, “device 1” 304 sends a response back to the IoTserver 308.

In step 5 of FIG. 9B, the proximity manager 306 sends a “ProximityService De-Registration Request” to “device 2” 302. The proximitymanager 306 may use this message to de-register IoT service only, or tode-register both IoT service and proximity service. This message maycontain the following information:

-   -   The address of the IoT server 308    -   Group identifier which the device belongs to    -   De-registration reason

In step 6 of FIG. 9B, “device 2” 302 sends a response back to the IoTserver 308.

It is understood that the entities performing the steps illustrated inFIGS. 9A-B are logical entities that may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory of,and executing on a processor of, a device, server, or other computersystem such as one of those illustrated in FIG. 16C or 16D. That is, themethod(s) illustrated in FIGS. 9A-B may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory ofa computing device, such as for example the device or computer systemillustrated in FIG. 16C or 16D, which computer executable instructions,when executed by a processor of the computing device, perform the stepsillustrated in FIGS. 9A-B.

Approach 5: Proximity-Manager-Initiated De-Registration

The proximity manager 306 can initiate IoT service de-registration basedon certain policies. For example, if two devices are entering into aspecific area where proximity services are disallowed, the proximityserver can de-activate proximity services. In the second example, theproximity manager 306 finds the current proximity link between twodevices becomes unreliable and of low quality, it can cancel proximityservices. In the third example, the proximity manager 306 may find thatthe current IoT server 308 becomes unreliable or unsecure and cancel IoTservices. FIGS. 10A-B illustrates the procedures forproximity-manager-initiated de-registration.

In FIG. 10A, the proximity manager 306 initiates and plays as a proxy toperform de-registration for multiple devices. For example, FIG. 10Ashows the following exemplary steps:

In step 1 of FIG. 10A, the proximity manager 306 decides to perform IoTservice de-registration for some devices by sending an “IoT ServiceDe-Registration Request” message to the corresponding IoT server 308.The proximity manager 306 may first look up its local database to findthe corresponding IoT server 308. This message may contain the followinginformation:

-   -   Group identifier which devices belong to    -   The list of devices' identifiers    -   De-registration reason

In step 2 of FIG. 10A, the IoT server 308 sends a response back to theproximity manager 306

In step 3 of FIG. 10A, the proximity manager 306 sends a “ProximityService De-Registration Request” to “device 1” 304. The proximitymanager 306 may use this message to de-register IoT service only, or tode-register both IoT service and proximity service. This message maycontain the following information:

-   -   The address of the IoT server 308    -   Group identifier which the device belongs to    -   De-registration reason

In step 4 of FIG. 10A, “device 1” 304 sends a response back to theproximity manager 306

In step 5 of FIG. 10A, the proximity manager 306 sends a “ProximityService De-Registration Request” to “device 2” 302. The proximitymanager 306 may use this message to de-register IoT service only, or tode-register both IoT service and proximity service. This message maycontain the following information:

-   -   The address of the IoT server 308    -   Group identifier which the device belongs to    -   De-registration reason

In step 6 of FIG. 10A, “device 2” 302 sends a response back to theproximity manager 306

In FIG. 10B, the proximity manager 306 initiates de-registration but itgoes through the IoT server 308. For example, shows the followingexemplary steps:

In step 1 of FIG. 10B, the proximity manager 306 decides to performproximity service de-registration to some devices by sending a“ProximityService De-Registration Request” message to the correspondingIoT server 308. The proximity manager 306 may first look up its localdatabase to find the corresponding IoT server 308. This message maycontain the following information:

-   -   Group identifier which devices belong to    -   Devices' identifiers    -   De-registration reason

In step 2 of FIG. 10B, the IoT server 308 sends a response back to theproximity manager 306

In step 3 of FIG. 10B, the IoT server 308 sends an “IoT ServiceDe-Registration Request” to “device 1” 304. The IoT server 308 may usethis message to de-register proximity service only, or to de-registerboth proximity service and IoT service. This message may contain thefollowing information:

-   -   The address of the proximity manager 306    -   Group identifier which the device belongs to    -   De-registration reason

In step 4 of FIG. 10B, “device 1” 304 sends a response back to the IoTserver 308.

In step 5 of FIG. 10B, the IoT server 308 sends an “IoT ServiceDe-Registration Request” to “device 2” 302. The IoT server 308 may usethis message to de-register proximity service only, or to de-registerboth proximity service and IoT service. This message may contain thefollowing information:

-   -   The address of the proximity manager 306    -   Group identifier which the device belongs to    -   De-registration reason

In step 6 of FIG. 10B, device 2 sends a response back to the IoT server308.

Embodiments

There are several options to implement the proposed messages in section5.2 and 5.3, i.e. to be implemented in different protocol layers.

It is understood that the entities performing the steps illustrated inFIGS. 10A-B are logical entities that may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory of,and executing on a processor of, a device, server, or other computersystem such as one of those illustrated in FIG. 16C or 16D. That is, themethod(s) illustrated in FIGS. 10A-B may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory ofa computing device, such as for example the device or computer systemillustrated in FIG. 16C or 16D, which computer executable instructions,when executed by a processor of the computing device, perform the stepsillustrated in FIGS. 10A-B.

Service Layer

The proposed messages can be implemented as service layer primitives andcan be applied to ETSI M2M service architecture, one M2M architecture ofcommon service functions, OMA device management, and/or OMA lightweightM2M.

For example, as illustrated in FIG. 11A, the proposed “Joint Proximityand IoT Registration/De-Registration” approaches in section 5.2 and 5.3are introduced as a new CSF in one M2M. This new CSF, “Joint Proximityand IoT Registration/De-Registration” 1102, can reside in M2M devices,M2M gateways, and M2M servers. As shown in FIG. 11B, an M2M gateway oran M2M server may act as a proximity manager, while an M2M server canplay the role of an IoT server.

It is understood that the entities performing the steps illustrated inFIGS. 11A-B are logical entities that may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory of,and executing on a processor of, a device, server, or other computersystem such as one of those illustrated in FIG. 16C or 16D. That is, themethod(s) illustrated in FIGS. 11A-B may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory ofa computing device, such as for example the device or computer systemillustrated in FIG. 16C or 16D, which computer executable instructions,when executed by a processor of the computing device, perform the stepsillustrated in FIGS. 11A-B.

In another example shown in FIG. 12, the proximity manager isimplemented as a CSF. Then, device 1 and device 2 and the IoT server areimplemented as CSE. The interface between the proximity manager anddevice 1/device 2/IoT server is Mcn reference point, while device 1,device 2, and IoT server interface with each other over Mcc referencepoint.

Medium Access Control (MAC) Layer

The proposed messages can be implemented as MAC layer commands whendevices, IoT server, and proximity manager 306 are within the same localarea network.

For example, FIG. 13 illustrates a local area network consists of agateway, and coordinator and 2 devices. The gateway is an IoT server toprovide IoT services for the coordinator and 2 devices, while thecoordinator manages proximity for device 1 and device 2 because it ismore powerful with more resources such as computation, storage,communications (additional communication link), main-powered. Forexample, the coordinator could be a cluster or group head especially intwo-tiered networks. The coordinator, two devices and the gatewaytogether provide content sharing service, for instance. Device 1 anddevice 2 can leverage the proposed procedures to optimize proximity andIoT service management (i.e. registration and de-registration). Theproposed messages can be implemented at the MAC layer since the gatewayand the coordinator can communicate with each other within one hop.

For example, the proposed new messages (either request message orresponse message) in previous sections can be implemented as new (MAC)commands (see FIG. 14). Each MAC command will be transmitted in an MACframe 1402 consisting of an MAC frame header 1404, MAC payload 1406, andMAC Footer 1408. The MAC frame header 1404 indicates that the payload isa management command via existing “Frame Type” field 1410, while theexisting field “Command Frame Identifier” 1412 in MAC payload 1406indicates the specific command, and “Command Content” 1414 will containall parameters/information related to this specific command. Basically,“Frame Type” 1410 is used to indicate that the MAC frame is the proposedRequest or Response messages in this disclosure; “Command Content” 1414contains the details of the proposed messages. Both “Frame Type” 1410and “Command Content” 1414 together identify and stand each proposedmessage.

In FIG. 14, Node 1 and Node 2 could be “device 1” 304, “device 2” 302,proximity manager 306, or IoT server 308 as described in previoussections.

It is understood that the entities performing the steps illustrated inFIG. 14 are logical entities that may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory of,and executing on a processor of, a device, server, or other computersystem such as one of those illustrated in FIG. 16C or 16D. That is, themethod(s) illustrated in FIG. 14 may be implemented in the form ofsoftware (i.e., computer-executable instructions) stored in a memory ofa computing device, such as for example the device or computer systemillustrated in FIG. 16C or 16D, which computer executable instructions,when executed by a processor of the computing device, perform the stepsillustrated in FIG. 14.

FIG. 15 is a diagram that illustrates an exemplary interface 1502 thatcan be used with the disclosed joint registration/deregistration ofproximity services and IoT services systems and methods. Interface 1502can be at the device that is to use the jointregistration/deregistration of proximity services and IoT services or ata remote device. Interface 1502 can be used to enable/disable jointproximity and IoT services for a device or devices. Also, interface 1502can be used to display proximity manager and IoT server data associatedwith a device or devices. Interface 1502 can also be used to set theproximity manager and IoT server associated with a device or devices,for example by providing an address of the proximity manager and/or IoTserver.

The user interface 1502 shown in FIG. 15 may be displayed using adisplay such as display 42 of FIG. 16C or display 86 of FIG. 16Ddiscussed below.

FIG. 16A is a diagram of an example machine-to machine (M2M), Internetof Things (IoT), or Web of Things (WoT) communication system 10 in whichone or more disclosed embodiments may be implemented. Generally, M2Mtechnologies provide building blocks for the IoT/WoT, and any M2Mdevice, gateway or service platform may be a component of the IoT/WoT aswell as an IoT/WoT service layer, etc. Communication system 10 can beused to implement functionality of the disclosed embodiments and caninclude functionality and logical entities for jointregistration/deregistration of proximity services and IoT servicesincluding proximity manager 306, IoT Server 308, devices 302 and 304,Joint Proximity and IoT registration/deregistration CSR 1102 as well aslogical entities to produce interfaces such as interface 1502.

As shown in FIG. 16A, the M2M/IoT/WoT communication system 10 includes acommunication network 12. The communication network 12 may be a fixednetwork (e.g., Ethernet, Fiber, ISDN, PLC, or the like) or a wirelessnetwork (e.g., WLAN, cellular, or the like) or a network ofheterogeneous networks. For example, the communication network 12 maycomprise of multiple access networks that provides content such asvoice, data, video, messaging, broadcast, or the like to multiple users.For example, the communication network 12 may employ one or more channelaccess methods, such as code division multiple access (CDMA), timedivision multiple access (TDMA), frequency division multiple access(FDMA), orthogonal FDMA (OFDMA), single-carrier FDMA (SC-FDMA), and thelike. Further, the communication network 12 may comprise other networkssuch as a core network, the Internet, a sensor network, an industrialcontrol network, a personal area network, a fused personal network, asatellite network, a home network, or an enterprise network for example.

As shown in FIG. 16A, the M2M/IoT/WoT communication system 10 mayinclude the Infrastructure Domain and the Field Domain. TheInfrastructure Domain refers to the network side of the end-to-end M2Mdeployment, and the Field Domain refers to the area networks, usuallybehind an M2M gateway. The Field Domain includes M2M gateways 14 andterminal devices 18. It will be appreciated that any number of M2Mgateway devices 14 and M2M terminal devices 18 may be included in theM2M/IoT/WoT communication system 10 as desired. Each of the M2M gatewaydevices 14 and M2M terminal devices 18 are configured to transmit andreceive signals via the communication network 12 or direct radio link.The M2M gateway device 14 allows wireless M2M devices (e.g. cellular andnon-cellular) as well as fixed network M2M devices (e.g. PLC) tocommunicate either through operator networks, such as the communicationnetwork 12 or direct radio link. For example, the M2M devices 18 maycollect data and send the data, via the communication network 12 ordirect radio link, to an M2M application 20 or M2M devices 18. The M2Mdevices 18 may also receive data from the M2M application 20 or an M2Mdevice 18. Further, data and signals may be sent to and received fromthe M2M application 20 via an M2M service layer 22, as described below.M2M devices 18 and gateways 14 may communicate via various networksincluding, cellular, WLAN, WPAN (e.g., Zigbee, 6LoWPAN, Bluetooth),direct radio link, and wireline for example.

Exemplary M2M devices 18 include, but are not limited to, tablets, smartphones, medical devices, temperature and weather monitors, connectedcars, smart meters, game consoles, personal digital assistants, healthand fitness monitors, lights, thermostats, appliances, garage doors andother actuator-based devices, security devices, and smart outlets.

Referring to FIG. 16B, the illustrated M2M service layer 22 in the fielddomain provides services for the M2M application 20, M2M gateway devices14, and M2M terminal devices 18 and the communication network 12.Communication network 12 can be used to implement functionality of thedisclosed embodiments and can include functionality and logical entitiesfor joint registration/deregistration of proximity services and IoTservices including proximity manager 306, IoT Server 308, devices 302and 304, Joint Proximity and IoT registration/deregistration CSR 1102 aswell as logical entities to produce interfaces such as interface 1502.

The M2M service layer 22 may be implemented by one or more servers,computers, devices, virtual machines (e.g. cloud/storage farms, etc.) orthe like, including for example the devices illustrated in FIGS. 16C and16D described below. It will be understood that the M2M service layer 22may communicate with any number of M2M applications, M2M gateway devices14, M2M terminal devices 18 and communication networks 12 as desired.The M2M service layer 22 may be implemented by one or more servers,computers, or the like. The M2M service layer 22 provides servicecapabilities that apply to M2M terminal devices 18, M2M gateway devices14 and M2M applications 20. The functions of the M2M service layer 22may be implemented in a variety of ways, for example as a web server, inthe cellular core network, in the cloud, etc. Similar to the illustratedM2M service layer 22, there is the M2M service layer 22′ in theInfrastructure Domain. M2M service layer 22′ provides services for theM2M application 20′ and the underlying communication network 12′ in theinfrastructure domain. M2M service layer 22′ also provides services forthe M2M gateway devices 14 and M2M terminal devices 18 in the fielddomain. It will be understood that the M2M service layer 22′ maycommunicate with any number of M2M applications, M2M gateway devices andM2M terminal devices. The M2M service layer 22′ may interact with aservice layer by a different service provider. The M2M service layer 22′may be implemented by one or more servers, computers, virtual machines(e.g. cloud/compute/storage farms, etc.) or the like.

Referring also to FIG. 16B, the M2M service layer 22 and 22′ provide acore set of service delivery capabilities that diverse applications andverticals can leverage. These service capabilities enable M2Mapplications 20 and 20′ to interact with devices and perform functionssuch as data collection, data analysis, device management, security,billing, service/device discovery etc. Essentially, these servicecapabilities free the applications of the burden of implementing thesefunctionalities, thus simplifying application development and reducingcost and time to market. The service layer 22 and 22′ also enables M2Mapplications 20 and 20′ to communicate through various networks 12 and12′ in connection with the services that the service layer 22 and 22′provide. The connection methods of the present application may beimplemented as part of a service layer 22 and 22′. The service layer 22and 22′ is a software middleware layer that supports value-added servicecapabilities through a set of Application Programming Interfaces (APIs)and underlying networking interfaces. Both ETSI M2M and oneM2M use aservice layer that may contain the connection methods of the presentapplication. ETSI M2M's service layer is referred to as the ServiceCapability Layer (SCL). The SCL may be implemented within an M2M device(where it is referred to as a device SCL (DSCL)), a gateway (where it isreferred to as a gateway SCL (GSCL)) and/or a network node (where it isreferred to as a network SCL (NSCL)). The oneM2M service layer supportsa set of Common Service Functions (CSFs) (i.e. service capabilities). Aninstantiation of a set of one or more particular types of CSFs isreferred to as a Common Services Entity (CSE) which can be hosted ondifferent types of network nodes (e.g. infrastructure node, middle node,application-specific node). Further, connection methods of the presentapplication can implemented as part of an M2M network that uses aService Oriented Architecture (SOA) and/or a resource-orientedarchitecture (ROA) to access services such as the connection methods ofthe present application.

In some embodiments, M2M applications 20 and 20′ may include theapplications that interact with capillary devices and therefore may beused in conjunction with the disclosed systems and methods. The M2Mapplications 20 and 20′ may include the applications that interact withthe UE or gateway and may also be used in conjunction with otherdisclosed charging systems and methods. The M2M applications 20 and 20′may include applications in various industries such as, withoutlimitation, transportation, health and wellness, connected home, energymanagement, asset tracking, and security and surveillance. As mentionedabove, the M2M service layer, running across the devices, gateways, andother servers of the system, supports functions such as, for example,data collection, device management, security, billing, locationtracking/geofencing, device/service discovery, and legacy systemsintegration, and provides these functions as services to the M2Mapplications 20 and 20′.

Generally, the service layers 22 and 22′ define a software middlewarelayer that supports value-added service capabilities through a set ofApplication Programming Interfaces (APIs) and underlying networkinginterfaces. Both the ETSI M2M and oneM2M architectures define a servicelayer. ETSI M2M's service layer is referred to as the Service CapabilityLayer (SCL). The SCL may be implemented within an M2M device (where itis referred to as a device SCL (DSCL)), a gateway (where it is referredto as a gateway SCL (GSCL)) and/or a network node (where it is referredto as a network SCL (NSCL)). The oneM2M service layer supports a set ofCommon Service Functions (CSFs) (i.e. service capabilities). Aninstantiation of a set of one or more particular types of CSFs isreferred to as a Common Services Entity (CSE) which can be hosted ondifferent types of network nodes (e.g. infrastructure node, middle node,application-specific node). The Third Generation Partnership Project(3GPP) has also defined an architecture for machine-type communications(MTC). In that architecture, the service layer, and the servicecapabilities is provides, are implemented as part of a ServiceCapability Server (SCS). Whether embodied in a DSCL, GSCL, or NSCL ofthe ETSI M2M architecture, in a Service Capability Server (SCS) of the3GPP MTC architecture, in a CSF or CSE of the oneM2M architecture, or assome other component or module of a network, the service layer may beimplemented as a logical entity (e.g., software, computer-executableinstructions, and the like) executing either on one or more standaloneservers, computers, or other computing devices or nodes in the networkor as part of one or more existing servers, computers, or nodes of suchnetwork. As an example, a service layer or component thereof may beimplemented in the form of software running on a server, computer, ordevice having the general architecture illustrated in FIG. 16C or FIG.16D described below.

Further, the logical entities for joint registration/deregistration ofproximity services and IoT services including proximity manager 306, IoTServer 308, devices 302 and 304, Joint Proximity and IoTregistration/deregistration CSR 1102 as well as logical entities toproduce interfaces such as interface 1502 can implemented as part of anM2M network that uses a Service Oriented Architecture (SOA) and/or aresource-oriented architecture (ROA) to access services of the presentapplication.

FIG. 16C is a system diagram of an example device 30, that can be an M2Mdevice, user equipment, gateway, UE/GW or any other nodes includingnodes of the mobile care network, service layer network applicationprovider, terminal device 18 or an M2M gateway device 14 for example.The device 30 can execute or include logical entities for jointregistration/deregistration of proximity services and IoT servicesincluding proximity manager 306, IoT Server 308, devices 302 and 304,Joint Proximity and IoT registration/deregistration CSR 1102 as well aslogical entities to produce interfaces such as interface 1502.

The device 30 can be part of an M2M network as shown in FIG. 16A-B orpart of a non-M2M network. As shown in FIG. 16C, the device 30 mayinclude a processor 32, a transceiver 34, a transmit/receive element 36,a speaker/microphone 38, a keypad 40, a display/touchpad/indicator(s)42, non-removable memory 44, removable memory 46, a power source 48, aglobal positioning system (GPS) chipset 50, and other peripherals 52. Itwill be appreciated that the device 30 may include any sub-combinationof the foregoing elements while remaining consistent with an embodiment.This device may be a device that uses and/or implements the disclosedsystems and methods.

The processor 32 may be a general purpose processor, a special purposeprocessor, a conventional processor, a digital signal processor (DSP), aplurality of microprocessors, one or more microprocessors in associationwith a DSP core, a controller, a microcontroller, one or moreApplication Specific Integrated Circuits (ASICs), one or more FieldProgrammable Gate Array (FPGAs) circuits, any other type and number ofintegrated circuits (ICs), a state machine, and the like. The processor32 may perform signal coding, data processing, power control,input/output processing, and/or any other functionality that enables thedevice 30 to operate in a wireless environment. The processor 32 may becoupled to the transceiver 34, which may be coupled to thetransmit/receive element 36. While FIG. 16C depicts the processor 32 andthe transceiver 34 as separate components, it will be appreciated thatthe processor 32 and the transceiver 34 may be integrated together in anelectronic package or chip. The processor 32 may performapplication-layer programs (e.g., browsers) and/or radio access-layer(RAN) programs and/or communications. The processor 32 may performsecurity operations such as authentication, security key agreement,and/or cryptographic operations, such as at the access-layer and/orapplication layer for example.

The transmit/receive element 36 may be configured to transmit signalsto, and/or receive signals from, an M2M service platform 22. Forexample, in an embodiment, the transmit/receive element 36 may be anantenna configured to transmit and/or receive RF signals. Thetransmit/receive element 36 may support various networks and airinterfaces, such as WLAN, WPAN, cellular, and the like. In anembodiment, the transmit/receive element 36 may be an emitter/detectorconfigured to transmit and/or receive IR, UV, or visible light signals,for example. In yet another embodiment, the transmit/receive element 36may be configured to transmit and receive both RF and light signals. Itwill be appreciated that the transmit/receive element 36 may beconfigured to transmit and/or receive any combination of wireless orwired signals.

In addition, although the transmit/receive element 36 is depicted inFIG. ----C as a single element, the device 30 may include any number oftransmit/receive elements 36. More specifically, the device 30 mayemploy MIMO technology. Thus, in an embodiment, the device 30 mayinclude two or more transmit/receive elements 36 (e.g., multipleantennas) for transmitting and receiving wireless signals.

The transceiver 34 may be configured to modulate the signals that are tobe transmitted by the transmit/receive element 36 and to demodulate thesignals that are received by the transmit/receive element 36. As notedabove, the device 30 may have multi-mode capabilities. Thus, thetransceiver 34 may include multiple transceivers for enabling device 30to communicate via multiple RATs, such as UTRA and IEEE 802.11, forexample.

The processor 32 may access information from, and store data in, anytype of suitable memory, such as the non-removable memory 44 and/or theremovable memory 46. The non-removable memory 44 may includerandom-access memory (RAM), read-only memory (ROM), a hard disk, or anyother type of memory storage device. The removable memory 46 may includea subscriber identity module (SIM) card, a memory stick, a securedigital (SD) memory card, and the like. In other embodiments, theprocessor 32 may access information from, and store data in, memory thatis not physically located on the device 30, such as on a server or ahome computer.

The processor 30 may receive power from the power source 48, and may beconfigured to distribute and/or control the power to the othercomponents in the device 30. The power source 48 may be any suitabledevice for powering the device 30. For example, the power source 48 mayinclude one or more dry cell batteries (e.g., nickel-cadmium (NiCd),nickel-zinc (NiZn), nickel metal hydride (NiMH), lithium-ion (Li-ion),etc.), solar cells, fuel cells, and the like.

The processor 32 may also be coupled to the GPS chipset 50, which may beconfigured to provide location information (e.g., longitude andlatitude) regarding the current location of the device 30. It will beappreciated that the device 30 may acquire location information by wayof any suitable location-determination method while remaining consistentwith an embodiment.

The processor 32 may further be coupled to other peripherals 52, whichmay include one or more software and/or hardware modules that provideadditional features, functionality and/or wired or wirelessconnectivity. For example, the peripherals 52 may include anaccelerometer, an e-compass, a satellite transceiver, a sensor, adigital camera (for photographs or video), a universal serial bus (USB)port, a vibration device, a television transceiver, a hands freeheadset, a Bluetooth® module, a frequency modulated (FM) radio unit, adigital music player, a media player, a video game player module, anInternet browser, and the like.

FIG. 16D is a block diagram of an exemplary computing system 90 onwhich, for example, the M2M service platform 22 of FIGS. 16A and 16B maybe implemented. Computing system 90 may comprise a computer or serverand may be controlled primarily by computer readable instructions, whichmay be in the form of software, wherever, or by whatever means suchsoftware is stored or accessed. Computing system 90 can execute orinclude logical entities for joint registration/deregistration ofproximity services and IoT services including proximity manager 306, IoTServer 308, devices 302 and 304, Joint Proximity and IoTregistration/deregistration CSR 1102 as well as logical entities toproduce interfaces such as interface 1502.

Computing system 90 can be an M2M device, user equipment, gateway, UE/GWor any other nodes including nodes of the mobile care network, servicelayer network application provider, terminal device 18 or an M2M gatewaydevice 14 for example. Such computer readable instructions may beexecuted within central processing unit (CPU) 91 to cause computingsystem 90 to do work. In many known workstations, servers, and personalcomputers, central processing unit 91 is implemented by a single-chipCPU called a microprocessor. In other machines, the central processingunit 91 may comprise multiple processors. Coprocessor 81 is an optionalprocessor, distinct from main CPU 91 that performs additional functionsor assists CPU 91. CPU 91 and/or coprocessor 81 may receive, generate,and process the data used in various embodiments of the disclosedsystems.

In operation, CPU 91 fetches, decodes, and executes instructions, andtransfers information to and from other resources via the computer'smain data-transfer path, system bus 80. Such a system bus connects thecomponents in computing system 90 and defines the medium for dataexchange. System bus 80 typically includes data lines for sending data,address lines for sending addresses, and control lines for sendinginterrupts and for operating the system bus. An example of such a systembus 80 is the PCI (Peripheral Component Interconnect) bus.

Memory devices coupled to system bus 80 include random access memory(RAM) 82 and read only memory (ROM) 93. Such memories include circuitrythat allows information to be stored and retrieved. ROMs 93 generallycontain stored data that cannot easily be modified. Data stored in RAM82 may be read or changed by CPU 91 or other hardware devices. Access toRAM 82 and/or ROM 93 may be controlled by memory controller 92. Memorycontroller 92 may provide an address translation function thattranslates virtual addresses into physical addresses as instructions areexecuted. Memory controller 92 may also provide a memory protectionfunction that isolates processes within the system and isolates systemprocesses from user processes. Thus, a program running in a first modecan access only memory mapped by its own process virtual address space;it cannot access memory within another process's virtual address spaceunless memory sharing between the processes has been set up.

In addition, computing system 90 may contain peripherals controller 83responsible for communicating instructions from CPU 91 to peripherals,such as printer 94, keyboard 84, mouse 95, and disk drive 85. Display86, which is controlled by display controller 96, is used to displayvisual output generated by computing system 90. Such visual output mayinclude text, graphics, animated graphics, and video. Display 86 may beimplemented with a CRT-based video display, an LCD-based flat-paneldisplay, gas plasma-based flat-panel display, or a touch-panel. Displaycontroller 96 includes electronic components required to generate avideo signal that is sent to display 86.

Further, computing system 90 may contain network adaptor 97 that may beused to connect computing system 90 to an external communicationsnetwork, such as network 12 of FIGS. 16A and 16 B. In an embodiment,network adaptor 97 may receive and transmit data used by variousdisclosed systems and methods.

It is understood that any or all of the systems, methods, and processesdescribed herein may be embodied in the form of computer executableinstructions (i.e., program code) stored on a computer-readable storagemedium. Such instructions, when executed by a machine, such as acomputer, server, M2M terminal device, M2M gateway device, or the like,perform and/or implement the systems, methods and processes describedherein. Specifically, any of the steps, operations or functionsdescribed above, including the operations of the gateway, UE, UE/GW, orany of the nodes of the mobile core network, service layer or networkapplication provider, may be implemented in the form of such computerexecutable instructions. Logical entities for jointregistration/deregistration of proximity services and IoT servicesincluding proximity manager 306, IoT Server 308, devices 302 and 304,Joint Proximity and IoT registration/deregistration CSR 1102 as well aslogical entities to produce interfaces such as interface 1502 may beembodied in the form of the computer executable instructions stored on acomputer-readable storage medium. Computer readable storage mediainclude both volatile and nonvolatile, removable and non-removable mediaimplemented in any method or technology for storage of information, butsuch computer readable storage media do not include signals. Computerreadable storage media include, but are not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CDROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other physical medium that can be used to store the desiredinformation and that can be accessed by a computer.

In describing preferred embodiments of the subject matter of the presentdisclosure, as illustrated in the FIGs., specific terminology isemployed for the sake of clarity. The claimed subject matter, however,is not intended to be limited to the specific terminology so selected,and it is to be understood that each specific element includes alltechnical equivalents that operate in a similar manner to accomplish asimilar purpose.

This written description uses examples to disclose the invention,including the best mode, and also to enable any person skilled in theart to practice the invention, including making and using any devices orsystems and performing any incorporated methods. The patentable scope ofthe invention is defined by the claims and may include other examplesthat occur to those skilled in the art. Such other examples are intendedto be within the scope of the claims if they have structural elementsthat do not differ from the literal language of the claims, or if theyinclude equivalent structural elements with insubstantial differencesfrom the literal languages of the claims.

What is claimed:
 1. In a communication network comprising a first serverfor providing a first service in the communication network and aplurality of second servers for providing a second service in thecommunication network, a method performed by the first servercomprising: receiving a registration message from a device, wherein theregistration message includes data comprising an indication of thedevice's requirements for supporting the second service, an indicationof the device's capability on the second service, and locationinformation of the device; registering the device for the first serviceat the first server; selecting a second server from the plurality ofsecond servers based at least on the location information of the device;forwarding the data from the registration message to the selected secondserver so that the device could receive the second service from theselected second server; and sending, to the device, a responseindicating an address of the selected second server, wherein the firstserver comprises one of a proximity manager for managing proximityservices or an Internet of Things (IoT) server for managing IoTservices, and the selected second server comprises the other of theproximity manager for managing proximity services or the IoT server formanaging IoT services.
 2. The method of claim 1, wherein the firstserver is the IoT server and the selected second server is the proximitymanager.
 3. The method of claim 2, wherein the registration messagecontains an indication of the device's capability for proximityservices.
 4. The method of claim 2, wherein the registration messagecontains an indication of the device's requirements for proximityservices.
 5. The method of claim 1, wherein the first server is theproximity manager and the selected second server is the an IoT server.6. The method of claim 5, wherein the registration message contains anindication of the device's capability for IoT services.
 7. The method ofclaim 5, wherein the registration message contains an indication of thedevice's requirements for IoT services.
 8. In a communication networkcomprising a first server for providing a first service in thecommunication network and a plurality of second servers for providing asecond service in the communication network, a method performed by thefirst server comprising: receiving a de-registration message from adevice, wherein the de-registration message comprising an address of asecond server, de-registration reason, and location information of thedevice; de-registering the device for the first service at the firstserver; determining a selected second server from the plurality ofsecond servers based at least on the location information of the device;forwarding data from the de-registration message to the selected secondserver so that the device no longer receives the second service at theselected second server; and receiving, at the first server, a responsefrom the second service at the selected second server, wherein the firstserver comprises one of a proximity manager for managing proximityservices or an Internet of Things (IoT) server for managing IoTservices, and the selected second server comprises the other of theproximity manager for managing proximity services or the IoT server formanaging IoT services.
 9. The method of claim 8, wherein the firstserver is the IoT server and the selected second server is the proximitymanager.
 10. The method of claim 9, wherein the deregistration messagecontains an indication of an address of the proximity manager.
 11. Themethod of claim 8, wherein the first server is the proximity manager andthe selected second server is the IoT server.
 12. The method of claim11, wherein the deregistration message contains an indication of anaddress of the IoT server.
 13. A first server comprising a processor, amemory, and communication circuitry, the first server being connected tocommunication network via the communication circuitry, the first serverfurther including computer-executable instructions stored in the memoryof the first server which, when executed by the processor of the firstserver cause the first server to: receive a registration message from adevice, wherein the registration message includes data comprising anindication of the device's requirements for supporting a second service,an indication of the device's capability on a second service, registerthe device for a first service at the first server; determine a secondserver from a plurality of second servers for device registration basedon the location information; forward the data from the registrationmessage to the second server so that the device could receive the secondservice from the second server; and sending, to the device, a responseindicating an address of the second server, wherein the first servercomprises one of a proximity manager for managing proximity services oran Internet of Things (IoT) server for managing IoT services, and thesecond server comprises the other of the proximity manager for managingproximity services or the IoT server for managing IoT services.
 14. Adevice comprising a processor, a memory, and communication circuitry,the device being connected to communication network via thecommunication circuitry, the device further includingcomputer-executable instructions stored in the memory of the devicewhich, when executed by the processor of the device cause the device to:transmit a registration message to a first server, wherein theregistration message comprises data comprising an indication of thedevice's requirements for supporting a second service and an indicationof the device's capability on a second service, to register the devicefor a first service at the first server; and receiving, from the firstserver, a response indicating an address of a second server determinedfrom a plurality of second servers for device registration based onlocation information, wherein the first server comprises one of aproximity manager for managing proximity services or an Internet ofThings (IoT) server for managing IoT services, and wherein the secondserver comprises the other of the proximity manager for managingproximity services or the IoT server for managing IoT services, whereinthe data is forwarded from the registration message to the second serverso that the device could receive the second service from the secondserver.